Skip to content

Comments

Implement provider uninstallation process#34

Open
balgerion wants to merge 1 commit intomaxpiva:mainfrom
balgerion:fix/provider-uninstall-missing-bridge-call
Open

Implement provider uninstallation process#34
balgerion wants to merge 1 commit intomaxpiva:mainfrom
balgerion:fix/provider-uninstall-missing-bridge-call

Conversation

@balgerion
Copy link
Contributor

@balgerion balgerion commented Feb 23, 2026

Added functionality to uninstall a provider by removing it from the Mihon bridge and the database
Fix #28

Added functionality to uninstall a provider by removing it from the Mihon bridge and the database.
@maxpiva
Copy link
Owner

maxpiva commented Feb 23, 2026

I think the issue is that ReconcileLocalAsync is bringing providers back to life because the routine is half-assed.

I’m writing this not only to explain the reasoning, but also to have it documented , so we don’t have to rethink it every time.

We should also stick to a single source of truth, the database, not the Mihon extensions, for determining which providers are installed and their current state.

Proposed semantics:

IsEnabled: Installed / uninstalled

Install → IsEnabled = true
Uninstall → IsEnabled = false

IsBroken: Marked as broken by the system (future enhancement; e.g., failing calls for a few days)
IsDead: Provider no longer exists in the Mihon extension ecosystem

ReconcileLocalAsync should never set IsEnabled = true again automatically.

Anywhere we currently check only IsEnabled, we should also account for IsBroken and IsDead.

We also cannot delete providers from the database, because some series may still be linked to them via SeriesProviderEntity.
The UI should only display extensions as installed if they are marked in the database with IsEnabled = true.
We also need to ensure that:
On uninstall, all related SeriesProvider entries are marked as IsUninstalled = true.
On install, all related SeriesProvider entries previously marked as IsUninstalled = true are set back to false.
Reconcile jobs, based on this

This keeps the database state consistent and prevents mismatches between extension state and linked series.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2.0 bug – removing providers doesn’t work

2 participants